package com.music.service.tag.impl;

import com.alibaba.fastjson.JSON;
import com.music.dto.tag.TagDTO;
import com.music.mapper.tag.TagMapper;
import com.music.service.music.impl.PlaylistServiceImpl;
import com.music.service.tag.TagService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.swing.text.html.HTML;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class TagServiceImpl implements TagService {
    @Resource
    private TagMapper tagMapper;
    private final Logger logger = LoggerFactory.getLogger(TagServiceImpl.class);

    @Override
    public List<TagDTO> listAllTag() throws Exception {
        List<TagDTO> listTag = tagMapper.listAllTag();
        List<TagDTO> res = new ArrayList<>();
        Map<Long, List<TagDTO>> tagMap= new HashMap<>();
        for (TagDTO tagDTO:listTag) {
            if (tagDTO.getTagType() == 1) {
                res.add(tagDTO);
                tagMap.put(tagDTO.getTagId(), new ArrayList<>());
            } else if (tagDTO.getTagType() == 2) {
                List<TagDTO> temp = tagMap.getOrDefault(tagDTO.getTagFather(), new ArrayList<>());
                temp.add(tagDTO);
                tagMap.put(tagDTO.getTagFather(), temp);
            }
        }
        for (TagDTO tagDTO:res) {
            tagDTO.setChildren(tagMap.getOrDefault(tagDTO.getTagId(), new ArrayList<>()));
        }
        return res;
    }
}
